<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
  
<!-- Mirrored from bos.asmhackers.net/docs/filesystems/ntfs/filename.html by HTTrack Website Copier/3.x [XR&CO'2013], Tue, 07 Oct 2014 11:26:07 GMT -->
<head>
    <title>NTFS Documentation: File Name Attribute</title>
  </head>

  <body>
      <h1><a href="index-2.html#NTFS" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/index.html#NTFS">NTFS</a> Documentation: <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">File</a> Name <a href="attribute.html" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/attribute.html">Attribute</a></h1>

      <h2>Interest</h2>
      Name of the <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a>. This <a href="attribute.html" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/attribute.html">file attribute</a> is always <a href="attribute.html#resident" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/attribute.html#resident">resident</a>.
      <p>

      <a href="index-2.html#NTFS" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/index.html#NTFS">NTFS</a> has an advantage: as you can have several <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> name attributes for one <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a>, you can easily implement <a href="glossary.html#POSIX" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#POSIX">POSIX</a> hard links as a <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> with multiple <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> name attributes. When you delete a <a href="glossary.html#POSIX" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#POSIX">POSIX</a> hard link, only the corresponding <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> name attribute is deleted. If there is no <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> name attribute left, then the <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> is really deleted.
      <p>

      One lightly different application of that is the <a name="autogen"><a href="NT_FAQ.html#disable" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/NT_FAQ.html#disable">automatic</a> generation of a <a href="javascript:if(confirm('http://www.caldera.com/dos/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.caldera.com/dos/'" tppabs="http://www.caldera.com/dos/">DOS&reg;</a> <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> name based on the Win32 <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> name</a>, which occurs when you give a name to a <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> that doesn't fit into the <a href="#dos_space">DOS&reg; filename space</a>. Then, both names are real synonyms (in particular, you can really delete the <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> using anyone of the two names), allowing to old <a href="javascript:if(confirm('http://www.caldera.com/dos/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.caldera.com/dos/'" tppabs="http://www.caldera.com/dos/">DOS&reg;</a> clients to have an access to all the <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a>s of a <a href="javascript:if(confirm('http://www.microsoft.com/ntserver/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.microsoft.com/ntserver/'" tppabs="http://www.microsoft.com/ntserver/">Windows NT&reg;</a> server. The <a name="algogen">generation algorithm</a> is:
      <ol>
        <li>Remove all <a href="glossary.html#Unicode" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#Unicode">Unicode</a> characters
        <li>Remove all '.' but the last one if <em>it is not the first character</em>
        <li>Uppercase all letters
        <li>Remove forbidden characters
        <li>Truncate everything before the potential '.' to 6 characters, and add the string "~1"
        <li>Truncate everything after the potential '.' to 3 characters
        <li>While the name already exists, increment the string "~1"
        <p>

        <em>Note</em>: Step 7 means that although the generated <a href="javascript:if(confirm('http://www.caldera.com/dos/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.caldera.com/dos/'" tppabs="http://www.caldera.com/dos/">DOS&reg;</a> name is unique, it is impossible to deduce it from the Win32 name <em>only</em>.
        <p>
 
      </ol>
      <p>

      <h2>Layout of the <a href="attribute.html#stream" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/attribute.html#stream">stream</a></h2>
      <table border=2 cellspacing=2 cellpadding=2>
	<tr bgcolor="#E0E0E0">
	  <th>Offset to the beginning of the <a href="attribute.html#stream" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/attribute.html#stream">stream</a></th>
          <th>Length</th>
          <th>Description</th>
        </tr>
	<tr>
          <th>0</th>
          <th>8</th>
          <th><a href="fileref.html" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/fileref.html">File reference</a> to the <a href="FILE.html#base" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/FILE.html#base">base FILE record</a> of the <a href="dir.html" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/dir.html">directory</a> containing this name</th>
	</tr>
	<tr>
          <th>8</th>
          <th>20</th>
          <th><a name="file_modification_times"><a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">File</a> modification times</a></th>
	</tr>
	<tr>
          <th>28</th>
          <th>8</th>
          <th>Allocated size of the <b><a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a></b></th>
	</tr>
	<tr>
          <th>30</th>
          <th>8</th>
          <th>Real size of the <b><a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a></b></th>
	</tr>
	<tr>
          <th>38</th>
          <th>8</th>
          <th><a href="filename.html#flags" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/filename.html#flags">Flags</a></th>
	</tr>
          <th>40</th>
          <th>1</th>
          <th>L=Length of the <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> name</th>
	</tr>
	<tr>
          <th>41</th>
          <th>1</th>
          <th><a href="filename.html#filename_space" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/filename.html#filename_space">File name space</a></th>
	</tr>
	<tr>
          <th>42</th>
          <th>2*L</th>
          <th><a name="uni">File name in Unicode</a></th>
	</tr>
      </table>
      <p>

      <dl>
        <dt><a name="flags">Flags</a>
	  <dd>This is a superset of the <a name="file_permissions">standard attribute <a href="javascript:if(confirm('http://www.caldera.com/dos/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.caldera.com/dos/'" tppabs="http://www.caldera.com/dos/">DOS&reg;</a> <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> permissions</a>
	  <p>

          <table border=2 cellspacing=2 cellpadding=2>
	    <tr bgcolor="#E0E0E0">
	      <th>Bit</th>
              <th>Signification</th>
            </tr>
            <tr>
              <th>00 00 00 00 10 00 00 00</th>
              <th><a href="dir.html" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/dir.html">Directory</a></th> 
            </tr>
            <tr>
              <th>00 00 00 00 00 00 08 00</th>
              <th>Compressed</th> 
            </tr>
            <tr>
              <th>00 00 00 00 00 00 00 20</th>
              <th>Archive</th> 
            </tr>
            <tr>
              <th>00 00 00 00 00 00 00 04</th>
              <th>System</th> 
            </tr>
            <tr>
              <th>00 00 00 00 00 00 00 02</th>
              <th>Hidden</th> 
            </tr>
            <tr>
              <th>00 00 00 00 00 00 00 01</th>
              <th>Read-only</th> 
            </tr>
	  </table>
	  <p>

        <dt><a name="filename_space">Filename space</a>
	  <dd>This specifies to which filename space the file name belongs.
          <p>

	  <table border=2 cellspacing=2 cellpadding=2>
	    <tr bgcolor="#E0E0E0">
	      <th>Value</th>
              <th>Signification</th>
            </tr>
            <tr>
	      <th>0</th>
	      <th><a href="glossary.html#POSIX" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#POSIX">POSIX</a> space: any <a href="glossary.html#Unicode" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#Unicode">Unicode</a> character but 0 (null) and '/'. Names are <em>case sensitive</em>.</th>
            </tr>
            <tr>
	      <th>1</th>
	      <th><a name="win32_space">Win32 space</a>: sub-space of the <a href="glossary.html#POSIX" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#POSIX">POSIX</a> space, characters '"' '*' '/' ':' '&lt;' '&gt;' '?' '\' '|' are forbidden. Names can't end with a '.' or a ' ' and are <em>case insensitive</em>.</th>
            </tr>
            <tr>
	      <th>2</th>
	      <th><a name="dos_space"><a href="javascript:if(confirm('http://www.caldera.com/dos/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.caldera.com/dos/'" tppabs="http://www.caldera.com/dos/">DOS&reg;</a> space</a>: sub-space of the Win32 space, allowing only 8 bit characters greater than ' ' and different from '"' '*' '+' ',' ':' ';' '&lt;' '=' '&gt;' '?' '\'. Names must match the following pattern: 1 to 8 characters, then '.', then 1 to 3 characters. Letters must be in <em>uppercase</em>.</th>
            </tr>
            <tr>
	      <th>3</th>
	      <th>Both Win32 and <a href="javascript:if(confirm('http://www.caldera.com/dos/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.caldera.com/dos/'" tppabs="http://www.caldera.com/dos/">DOS&reg;</a> spaces: The provided Win32 name already belongs to the <a href="javascript:if(confirm('http://www.caldera.com/dos/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.caldera.com/dos/'" tppabs="http://www.caldera.com/dos/">DOS&reg;</a> space, so there is no need to generate an additional <a href="javascript:if(confirm('http://www.caldera.com/dos/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.caldera.com/dos/'" tppabs="http://www.caldera.com/dos/">DOS&reg;</a> name.</th>
            </tr>
	  </table>
          <p>

      </dl>
      <em>Note</em>:
      <ul>
	<li>The maximum length of a <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> name is 255 characters, like with <a href="glossary.html#HPFS" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#HPFS">HPFS</a>.
	<li>The root <a href="dir.html" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/dir.html">directory</a> contains itself.
	<li>The <a href="javascript:if(confirm('http://www.linux.org/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.linux.org/'" tppabs="http://www.linux.org/">Linux</a> driver should support the IOCTLs used by <a href="javascript:if(confirm('ftp://ftp.gwdg.de/pub/linux/misc/smbfs/smbfs.tgz  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='ftp://ftp.gwdg.de/pub/linux/misc/smbfs/smbfs.tgz'" tppabs="ftp://ftp.gwdg.de/pub/linux/misc/smbfs/smbfs.tgz">smbfs</a> to access short <a href="glossary.html#File" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#File">file</a> names on a VFAT (the <a href="javascript:if(confirm('http://www.microsoft.com/windows95/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.microsoft.com/windows95/'" tppabs="http://www.microsoft.com/windows95/">Windows 95&reg;</a> <a href="glossary.html#Filesystem" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/glossary.html#Filesystem">filesystem</a>) storage unit.
      </ul>
      <p>

      <h2>Questions</h2>
      <ul>
	<li>Why is the <a href="#file_modification_times">File modification times field</a> redundant with the <a href="standard.html#layout" tppabs="http://www.via.ecp.fr/~regis/ntfs/new/standard.html#layout">stream of the standard information attribute</a>?
        <p>

	<li>What are the other flags ?
      </ul>
      <p>

      <hr>
      <address><a href="mailto:regis@via.ecp.fr">Regis Duchesne</a> at <a href="javascript:if(confirm('http://www.via.ecp.fr/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.via.ecp.fr/'" tppabs="http://www.via.ecp.fr/">VIA</a>, <a href="javascript:if(confirm('http://www.ecp.fr/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.ecp.fr/'" tppabs="http://www.ecp.fr/">ECP</a>, France</address>
<!-- Created: Mon Dec  9 13:24:06 MET 1996 -->
<!-- hhmts start -->
Last modified: Mon Feb 15 07:06:41 PST 1999
<!-- hhmts end -->
  </body>

<!-- Mirrored from bos.asmhackers.net/docs/filesystems/ntfs/filename.html by HTTrack Website Copier/3.x [XR&CO'2013], Tue, 07 Oct 2014 11:26:07 GMT -->
</html>
